//package com.zhuangjie.mvc.handler.mybatis_type_handler;
//
//import com.fasterxml.jackson.core.JsonProcessingException;
//import com.fasterxml.jackson.databind.ObjectMapper;
//import org.apache.ibatis.type.BaseTypeHandler;
//import org.apache.ibatis.type.JdbcType;
//
//import java.io.IOException;
//import java.sql.CallableStatement;
//import java.sql.PreparedStatement;
//import java.sql.ResultSet;
//import java.sql.SQLException;
//import java.util.List;
//
//
///**
// * json类型处理程序
// *
// * @author zhuangjie
// * @date 2024/03/14
// */
//public class JsonTypeHandler extends BaseTypeHandler<List<Byte>> {
//
//    private final ObjectMapper objectMapper = new ObjectMapper();
//
//    @Override
//    public void setNonNullParameter(PreparedStatement ps, int i, List<Byte> parameter, JdbcType jdbcType)
//            throws SQLException {
//        try {
//            String jsonString = objectMapper.writeValueAsString(parameter);
//            ps.setString(i, jsonString);
//        } catch (JsonProcessingException e) {
//            // 处理异常
//            throw new SQLException("Error converting List<Byte> to JSON string", e);
//        }
//    }
//
//    private List<Byte> convertJsonString(String jsonString) {
//        try {
//            return objectMapper.readValue(jsonString, objectMapper.getTypeFactory().constructCollectionType(List.class, Byte.class));
//        } catch (IOException e) {
//            // 处理异常
//            throw new RuntimeException("Error converting JSON string to List<Byte>", e);
//        }
//    }
//
//    @Override
//    public List<Byte> getNullableResult(ResultSet rs, String columnName) throws SQLException {
//        return convertJsonString(rs.getString(columnName));
//    }
//
//    @Override
//    public List<Byte> getNullableResult(ResultSet rs, int columnIndex) throws SQLException {
//        return convertJsonString(rs.getString(columnIndex));
//    }
//
//    @Override
//    public List<Byte> getNullableResult(CallableStatement cs, int columnIndex) throws SQLException {
//        return convertJsonString(cs.getString(columnIndex));
//    }
//
//
//}
